iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0

這章節是程式實作,會從轉帳的觀念講起,之後會進行加法與減法的function實作。

一、轉帳
以太鏈的帳戶(account)就像銀行帳戶一樣,彼此間可以轉帳。
進行轉帳時必須知道對方的 address(地址),寫法如下:
address payable name

重點:要有 payable 才能進行轉帳!

以太幣轉帳有兩種寫法:

  1. transfer:若轉帳失敗,會自動恢復交易。
  2. send:若轉帳失敗會回傳 false,不會自動恢復。
    因此建議優先使用 transfer,較安全。

二、一起來看Storage合約

這部分介紹了一個名為Storage的合約。
程式的每一部分意義如下:
• 第1行:授權宣告(可改為 UNLICENSED 或 GPL-3.0)。
• 第3行:版本宣告,設定程式碼在 0.7.0~0.9.0 間可使用。
• 第9行:宣告合約Storage。
• 第17行:宣告function store(用來儲存資料)。
• 第25行:宣告function retrieve(用來取出資料,需回傳值)。
https://ithelp.ithome.com.tw/upload/images/20251012/20169261LmxNNDccu7.jpg
圖/Storage合約。

// SPDX-License-Identifier: GPL-3.0
// 這是授權宣告,如果沒有打這行的話,系統會跟你說
pragma solidity >=0.7.0 <0.9.0;
// 這是版本宣告,設定程式碼在 0.7.0~0.9.0 之間都可以使用

/// @title Storage
/// @dev Store & retrieve value in a variable
contract Storage { // 宣告一個名為 Storage 的 contract

    uint256 number;

    /**
     * @dev Store value in variable
     * @param num value to store
     */
    function store(uint256 num) public { // 宣告一個方法
        number = num;
    }

    /**
     * @dev Return value
     * @return value of 'number'
     */
    function retrieve() public view returns (uint256) { // 宣告一個查詢方法
        return number;
    }
}

三、實作

接下來進行實作練習,是參考以下連結來做練習的,若想看更詳細解說,可點進去觀看:
參考影片Solidity 30 天實戰教學(2020) - Day 4 - Layout of a solidity code

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;

// 合約:calualate,內含兩個 function
contract calualate {
    int private a;  // 這是用來儲存結果的變數

    function add(int x, int y) public returns(int z){
        // 加法 function,兩數相加為 z
        a = x + y;
        z = a;
    }

    function sub(int x, int y) public returns(int z){
        // 減法 function,兩數相減為 z
        a = x - y;
        z = a;
    }

    function total() public view returns(int){
        return a;
    }
}

Tips
這是一個簡單的加法與減法function,目的在於讓初學者熟悉Solidity合約的基本架構與function寫法。若覺得容易,可試著自己寫看看「乘法」與「除法」的function!

作者影片連續30天,每天5分鐘,一起學習blockchain! | day26-solidity小實作 | Zoe Ke可以直接跟著影片實作!


這章節進行了solidity實作,下一章節要來介紹什麼是Mapping~
有關實作的部分,我認為影片版會更能理解,所以都會以附上作者原影片方式代替文字書寫。

第二十三天書中的語錄是:
恭喜讀者看完第一個小實作,我都放非常簡單的程式,讓大家可以輕易上手,如果覺得太簡單也可以自己挑戰看看困難一點的程式呦!

上一篇
22:D16-D21總結&重點整理
下一篇
24:什麼是Mapping?
系列文
從零開始的區塊鏈學習30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言